package com.base.mapper.voipmapper;

import com.base.po.voip.Sotre;
import com.base.utils.Page;

import java.math.BigDecimal;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface SotreMapper {

	int insert(Sotre record);

	int insertSelective(Sotre record);

	Sotre selectByPrimaryKey(String id);

	int updateByPrimaryKeySelective(Sotre record);

	int deleteByPrimaryKey(String id);

	List<Sotre> selectBySotre(@Param("record") Sotre record, @Param("type") Integer type,
                              @Param("shopid") String shopid);

	/**
	 * 附近的商家
	 * 
	 * @param parentid  代理商ID
	 * @param latitude  经度
	 * @param longitude 纬度
	 */
	List<Sotre> selectByNearby(@Param("parentid") String parentid, @Param("latitude") BigDecimal latitude,
                               @Param("longitude") BigDecimal longitude, @Param("shopid") String shopid,
							   @Param("distance") Integer distance);

	// 商家的商圈信息
	int countByShopAll(@Param("shopid") String shopid, @Param("mobile") String mobile,
                       @Param("sotrename") String sotrename, @Param("appname") String appname, @Param("username") String username,
                       @Param("shopname") String shopname, @Param("status") Integer status, @Param("grade") Integer grade);

	List<Sotre> selectByShopAll(@Param("page") Page page, @Param("shopid") String shopid,
                                @Param("mobile") String mobile, @Param("sotrename") String sotrename, @Param("appname") String appname,
                                @Param("username") String username, @Param("shopname") String shopname, @Param("status") Integer status,
                                @Param("grade") Integer grade);

	// 代理商的商圈信息
	int countByParentAll(@Param("parentid") String parentid, @Param("mobile") String mobile,
                         @Param("sotrename") String sotrename, @Param("appname") String appname, @Param("username") String username,
                         @Param("shopname") String shopname, @Param("status") Integer status, @Param("grade") Integer grade);

	List<Sotre> selectByParentAll(@Param("page") Page page, @Param("parentid") String parentid,
                                  @Param("mobile") String mobile, @Param("sotrename") String sotrename, @Param("appname") String appname,
                                  @Param("username") String username, @Param("shopname") String shopname, @Param("status") Integer status,
                                  @Param("grade") Integer grade);
}